home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / other / how-to.pl / krypto.pl.txt < prev    next >
Encoding:
Text File  |  1997-11-25  |  13.7 KB  |  463 lines

  1.   Kryptograficzny System Plik≤w pod Linuxem - Jak To Zrobiµ
  2.   Autor: Alexander O. Yuriev, alex@bach.cis.temple.edu
  3.   Wersja polska: Krzysztof G. Baranowski KGB@rubikon.net.pl
  4.   v1.1 12 Maja 1997
  5.  
  6.  
  7.   W dokumencie opisano jak skompilowaµ, zainstalowaµ i ustawiµ Kryp¡
  8.   tograficzny System Plik≤w (zwany dalej CFS - przyp. t│umacza), kt≤ry
  9.   zosta│ napisany przez Matta Blaze z AT&T, pod Linuxa.
  10.  
  11.   1.  Wprowadzenie
  12.  
  13.  
  14.   NastΩpuj▒ce o╢wiadczenie skopiowane zosta│o bezpo╢rednio z CFS 1.12 i
  15.   opisuje zastrze┐enia co do u┐ywania CFS.
  16.  
  17.   ╖  Autorem tego oprogramowania jest Matt Blaze.
  18.  
  19.   ╖  Copyright (c) 1992, 1993, 1994 by AT&T.
  20.  
  21.   ╖  Zezwala siΩ u┐ywaµ, kopiowaµ i modyfikowaµ niniejsze oprogramowanie
  22.      bez ┐adnych op│at, pod warunkiem, ┐e zostanie do│▒czona do
  23.      wszystkich kopii oprogramowania pe│na dokumentacja, uwagi i
  24.      ostrze┐enia autora.
  25.  
  26.   ╖  To oprogramowanie podlega kotroli eksportu ze Stan≤w Zjednoczonych.
  27.  
  28.   ╖  Nie wolno eksportowaµ go, w czΩ╢ci lub w ca│o╢ci, albo pomagaµ w
  29.      eksporcie, bez zgody rz▒du USA i pisemnego zezwolenia od AT&T. W
  30.      szczeg≤lno╢ci nie wolno udostΩpniaµ ┐adnej czΩ╢ci tego
  31.      oprogramowania i jego nieograniczonych dystrybucji innym osobom,
  32.      ni┐ obywatele USA i Kanady.
  33.  
  34.   ╖  To oprogramowanie jest dostarczane "Takie jakie jest", bez ┐adnej
  35.      gwarancji i ani autorzy, ani AT&T nie udzielaj▒ ┐adnej gwarancji
  36.      jakiegokolwiek rodzaju dotycz▒cej dopasowania oprogramowania do
  37.      jakichkolwiek potrzeb.
  38.  
  39.   ╖  Pomimo, ┐e informacje w tym dokumencie uwa┐a siΩ za poprawne, ani
  40.      autor, ani Laboratoria CIS, ani Uniwersytet Temple nie udzielaj▒
  41.      ┐adnych gwarancji i nie s▒ odpowiedzialni za to, co siΩ stanie
  42.      kiedy bΩdziesz stosowa│ siΩ do niniejszego instrukta┐u. Informacja
  43.      zawarta w tym dokumencie jest udostΩpniana, taka jaka jest.
  44.  
  45.  
  46.   2.  O CFS
  47.  
  48.  
  49.   CFS umo┐liwia niezale┐ne od aplikacji szyfrowanie/deszyfrowanie danych
  50.   na pow│oce struktury plik≤w i nie wymaga modyfikacji kodu istniej▒cego
  51.   ju┐ systemu plik≤w, ani ┐adnych modyfikacji j▒dra systemu. Symetryczne
  52.   szyfrowanie zawarte w g│≤wnym strumieniu CFS bazuje na zmodyfikowanym
  53.   standardzie DES pracuj▒cym w trybie CBC, kt≤ry czyni brutalny atak
  54.   przeciwko 56-bitowemu kluczowi DES prawie niemo┐liwym. Struktura CFS
  55.   zastΩpuje g│≤wny strumie± DES, szyfrem Fast-DES albo jakimkolwiek
  56.   innym szyfrem, w doskona│y, bezpo╢redni spos≤b. Gdyby╢ by│
  57.   zainteresowany przeczytaj Bia│▒ stronΩ o CFS
  58.   <ftp://bach.cis.temple.edu/pub/Papers/cfs.ps>.
  59.  
  60.  
  61.   3.  KOMPILACJA I INSTALACJA CFS.
  62.  
  63.  
  64.   CFS nie skompiluje siΩ "samo" pod Linuxem. Pod▒┐aj za niniejszymi
  65.   instrukcjami, je╢li chcesz uruchomiµ CFS na swoim Linuxie. Jest kilka
  66.   metod osi▒gniΩcia tego celu, ale najprostsza bazuje na modyfikacjach
  67.   przeprowadzonych przez Olafa Kircha. Jego wersja CFS jest dostΩpna z:
  68.   ftp.mathematic.th-darmstadt.de <ftp://ftp.mathematik.th-
  69.   darmstadt.de/pub/linux/okir/cfs-1.1.2.tar.gz>.
  70.  
  71.   Olaf podpisa│ zmodyfikowane archiwum. Podpis PGP dla zmodyfikowanej
  72.   wersji cfs-1.1.2 mo┐na otrzymaµ z: ftp.mathematic.th-darmstadt.de
  73.   <ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/>.
  74.  
  75.   W trybie jednego u┐ytkownika, skompiluj cfs za pomoca komendy "make".
  76.   (przeczytaj najpierw odpowiednie pliki, tzn. README, Changes itp. -
  77.   przyp.  autora). Po kompilacji, zainstaluj: cfsd, cdetach, ccat,
  78.   cmkdir, cname i cattach do katalogu /usr/local/sbin - w│a╢cicielem
  79.   tych plikow niech bΩdzie root, a grupa, do kt≤rej musz▒ one nale┐eµ to
  80.   wheel. Nadaj plikom atrybuty 551.
  81.  
  82.   Dla bezpiecze±stwa mo┐na wygenerowaµ sumy kontrolne MD5, na czystych
  83.   binariach. NastΩpnie skopiuj te pliki razem z "md5sum", na media takie
  84.   jak p│yta CD, albo dyskietka i zabezpiecz j▒ przed zapisem.
  85.  
  86.   Utw≤rz katalog /.cfsfs, kt≤ry bΩdzie u┐ywany przez serwer CFS. Niech
  87.   w│a╢cicielem katalogu bΩdzie root, grupa root, a jego atrybuty niech
  88.   wynosz▒: 000. Utw≤rz katalog /securefs, ktory stanie siΩ korzeniem
  89.   drzewa Kryptograficznego Systemu Plik≤w.
  90.  
  91.   Dodaj nastepuj▒c▒ liniΩ do /etc/rc.d/rc.local:
  92.  
  93.  
  94.   echo -n "Inicjacja Kryptograficznego Systemu Plik≤w: "
  95.   if [ -x /usr/local/sbin/cfsd ]; then
  96.   /usr/local/sbin/cfsd > /dev/null
  97.   echo -n "cfsd "
  98.   /bin/mount -o
  99.   port=3049,intr localhost:/.cfsfs /securefs
  100.   echo -n "loopback"
  101.   echo "done"
  102.   else
  103.   echo "Nie zainstalowano poprawnie Kryptograficznego System Plik≤w"
  104.   fi
  105.  
  106.  
  107.  
  108.   U┐ytkownicy Red Hata powinni dodaµ plik "cfsfs", kt≤ry znajduje siΩ na
  109.   ko±cu tego dokumentu do katalogu /etc/rc.d/init.d. NastΩpnie utworzyµ
  110.   do│▒czenie symboliczne "S65cfsfs" i umie╢ciµ go w odpowiednim katalogu
  111.   startowym, np.  rc3.d u┐ywaj▒c komendy:
  112.  
  113.   ln -s /etc/rc.d/init.d/cfsfs S65cfsfs
  114.  
  115.  
  116.  
  117.   we w│a╢ciwym katalogu startowym. NastΩpnie nale┐y dodaµ liniΩ:
  118.  
  119.  
  120.   /.cfsfs localhost
  121.  
  122.  
  123.  
  124.   w pliku /etc/exports. Na ko±cu dodaj liniΩ:
  125.  
  126.  
  127.   portmap: 127.0.0.1
  128.  
  129.  
  130.  
  131.   do pliku /etc/hosts.allow.
  132.  
  133.   Teraz powiniene╢ zrestartowaµ komputer. Po jego uruchomieniu, u┐yj
  134.   komendy mount ┐eby sprawdziµ, czy CFS pracuje. Je╢li wszystko
  135.   zadzia│a│o, powiniene╢ zobaczyµ now▒ nastΩpuj▒c▒ liniΩ po wykonaniu
  136.   komendy mount.
  137.  
  138.  
  139.   localhost:/.cfsfs on /securefs type nfs(rw,port=3049,intr,addr=127.0.0.1)
  140.  
  141.  
  142.  
  143.  
  144.   4.  TWORZENIE KATALOGU CFS
  145.  
  146.  
  147.   »eby utworzyµ szyfrowany katalog o nazwie "sekret" u┐yj komendy:
  148.  
  149.  
  150.   cmkdir sekret
  151.  
  152.  
  153.  
  154.   Zostaniesz poproszony o podanie i zweryfikowanie has│a. Je┐eli to sie
  155.   uda, utworzony zostanie katalog "sekret", kt≤ry pojawi sie w bie┐▒cym
  156.   katalogu.  Katalog ten bΩdzie zawiera│ zaszyfrowane dane, kt≤re bΩdzie
  157.   mo┐na normalnie przegl▒daµ pod warunkiem, ┐e do│▒czymy ten katalog do
  158.   drzewa CFS.
  159.  
  160.   »eby mo┐na by│o swobodnie korzystaµ z informacji zawartych w katalogu,
  161.   trzeba do│▒czyµ go do drzewa katalog≤w zarz▒dzanych przez CFS za
  162.   pomoca komendy:
  163.  
  164.  
  165.   cattach sekret Tajne
  166.  
  167.  
  168.  
  169.   CFS poprosi CiΩ o podanie has│a dostΩpu. Je┐eli bΩdzie siΩ ono
  170.   zgadza│o z has│em podanym przy tworzeniu katalogu "sekret", dane
  171.   zawarte w tym katalogu bΩd▒ dostΩpne w niezakodowanej formie w
  172.   /securefs/Tajne, TYLKO dla u┐ytkownika, kt≤ry poda│ w│a╢ciwe has│o
  173.   dostΩpu. (nawet root nie mo┐e odczytaµ tych plik≤w ;-) - przyp.
  174.   t│umacza)
  175.  
  176.   Zauwa┐, ┐e do│▒czenie katalogu do drzewa CFS, mo┐e zaj▒µ nawet minutΩ.
  177.   (u mnie na P133/16MB RAM zajmuje nie wiΩcej ni┐ 5 sekund). Od tej pory
  178.   mo┐emy korzystaµ z katalogu /securefs/Tajne jak z ka┐dego innego
  179.   katalogu.
  180.  
  181.   Kiedy sko±czymy pracΩ powinni╢my u┐yµ komendy:
  182.  
  183.  
  184.   cdetach Tajne
  185.  
  186.  
  187.  
  188.   ┐eby uniemo┐liwiµ dostΩp do danych. Komenda ta usuwa katalog "sekret"
  189.   z listy katalog≤w zarz▒dzanych przez CFS, co uniemo┐liwia odczytanie
  190.   informacji w tym katalogu, gdy┐ s▒ one zakodowane. Aby znowu umo┐liwiµ
  191.   sobie dostΩp do danych nale┐y u┐yµ komendy "cattach".
  192.  
  193.  
  194.   5.  OCHRONA CFS
  195.  
  196.  
  197.   Aby umo┐liwiµ u┐ytkownikom dostΩp do zaszyfrowanych danych, CFS wymaga
  198.   od u┐ytkownika has│a, kt≤re jest u┐ywane do wygenerowania zestaw≤w
  199.   kluczy.
  200.  
  201.   Zdobycie has│a przez niepowo│ane osoby pozwala intruzom odczytaµ
  202.   zaszyfrowane dane, dlatego jest niezwykle wa┐ne, aby u┐ytkownik we
  203.   w│asnym interesie chroni│ has│o dostΩpu. Istniej▒ dwie mo┐liwo╢ci
  204.   zdobycia Twojego has│a przez intruz≤w:
  205.  
  206.  
  207.   1. Sniffing
  208.  
  209.   2. Atak przeciwko protoko│owi.
  210.  
  211.   Informacje zawarte poni┐ej mog▒ zostaµ u┐yte, aby zmniejszyµ
  212.   prawdopodobie±stwo skutecznego ataku przeciwko CFS.
  213.  
  214.  
  215.   1. Upewnij siΩ, ┐e binaria CFS s▒ oryginalne:
  216.  
  217.  
  218.      a. upewnij siΩ, ┐e: cattach, ccat, cmkdir, cname, cfsd i cdetach
  219.         nie zosta│y zast▒pione "koniami troja±skimi", kt≤re zapisuj▒
  220.         has│a dostΩpu,
  221.  
  222.      b. upewnij siΩ, ┐e CFS serwer (cfsd), nie zosta│ w jaki╢ spos≤b
  223.         zmodyfikowany i ┐e szyfruje dane poprawnie,
  224.  
  225.      c. atak przeciwko "cdetach" zazwyczaj wymaga ma│ej modyfikacji
  226.         kodu, kt≤ra chroni klucze dostΩpu przed zniszczeniem i pozwala
  227.         intruzowi uzyskaµ kontrolΩ nad zakodowanymi danymi. Najprostszym
  228.         sposobem na upewnienie siΩ, ze binaria nie zosta│y podmienione,
  229.         jest zlinkowanie ich statycznie i umieszczenie na p│ycie CD.
  230.         Inny spos≤b, to zlinkowanie statyczne, wygenerowanie sum
  231.         kontrolnych za pomoc▒ programu MD5 i umieszczenie ich na
  232.         dyskietce zabezpieczonej przed zapisem. Przed u┐yciem CFS w
  233.         systemie, zamountuj dyskietkΩ i sprawd╝ czy sumy kontrolne
  234.         zgadzaj▒ siΩ; w razie potrzeby zastΩpuj▒c podmienione programy
  235.         ich oryginalnymi wersjami.
  236.  
  237.  
  238.   2. Uwa┐aj na programy zapisuj▒ce do pliku dane wpisywane z klawiatury,
  239.      tzw. keyboard grabbers i zawsze stosuj siΩ do poni┐szych zasad:
  240.  
  241.  
  242.      a. kiedy wpisujesz has│o w oknie xterm-a, upewnij siΩ, ┐e xterm
  243.         jest oryginalny i u┐ywaj bezpiecznej klawiatury "Secure
  244.         keyboard". To uniemo┐liwi przechwycenie has│a przez wy┐ej
  245.         opisane programy,
  246.  
  247.      b. wpisuj has│a do terminali przy│▒czonych bezpo╢rednio do port≤w
  248.         szeregowych systemu, gdy s▒ one dostΩpne,
  249.  
  250.      c. upewnij siΩ, ┐e konsole (pty i tty) s▒ ustawione tak, aby
  251.         uniemo┐liwiµ innym odczytanie twojego has│a.
  252.  
  253.  
  254.   3. Nigdy nie wpisuj has│a poprzez sieµ, nawet je╢li znajduje siΩ ona
  255.      za firewallem i wiesz, ┐e nikt pod│▒czony do sieci nie u┐ywa
  256.      sniffera. Tyczy siΩ to tak┐e sieci u┐ywaj▒cych, tzw. scramble
  257.      routers, poniewa┐ nie masz pewno╢ci, ze routery u┐ywaj▒ odpowiednio
  258.      silnej enkrypcji, nie maj▒ "tylnych drzwi" albo innych dziur, kt≤re
  259.      pozwoli│yby intruzowi pokonaµ enkrypcjΩ routera. Je┐eli jednak
  260.      musisz podaµ has│o poprzez sieµ, r≤b to tylko zaszyfrowanym kana│em
  261.      pomiΩdzy hostami. (najbardziej znany i popularny jest (ssh) secure
  262.      shell - przyp. autora)
  263.  
  264.  
  265.   4. Zawsze u┐ywaj komendy cdetach, kiedy nie pracujesz z danymi. Nawet
  266.      kiedy przerywasz pracΩ na kilka minut.
  267.  
  268.  
  269.   5.1.  ZNANE PROBLEMY Z CFS
  270.  
  271.  
  272.   W tym momencie jedyny znany problem, to komunikat "Permission denied",
  273.   kiedy pr≤bujesz dostaµ siΩ do plik≤w na p│ycie CD.
  274.  
  275.  
  276.   6.  PODZI╩KOWANIA
  277.  
  278.  
  279.   Ni┐ej wymienieni ludzie przyczynili siΩ do powstania tego dokumentu:
  280.   Topher Hughes z Dickinson College, Elie Rosenblum z Montgomery Blair
  281.   High School, Mario D. Santana z Florida State University, Daniel P
  282.   Zepeda i Olaf Kirch.
  283.  
  284.  
  285.   ====================[pocz▒tek pliku cfsfs]======================
  286.   #!/bin/sh
  287.   #
  288.   # $Header: /Secure/secure-doc/linux/CFS/RCS/CFS-Doc,v 1.
  289.   4 1996/03/15 04:49:37 alex Exp alex $
  290.   #
  291.   # cfsfs Kryptograficzny System Plik≤w
  292.   #
  293.   # Autor: Alexander O. Yuriev <alex@bach.cis.temple.edu>
  294.   #
  295.   # Derived from cron
  296.   # Source function library.
  297.  
  298.   . /etc/rc.d/init.d/functions
  299.  
  300.   # See how we were called.
  301.  
  302.   case "$1" in
  303.    start)
  304.           echo -n "Uruchamianie Kryptograficznego Systemu Plik≤w: "
  305.           if [ -x /usr/local/sbin/cfsd ]; then
  306.                   /usr/local/sbin/cfsd > /dev/null
  307.                   /bin/mount -o port=3049,intr localhost:/.cfsfs /securefs
  308.                   echo "done"
  309.           else
  310.            echo -n "Nie zainstalowano poprawnie Kryptograficznego Systemu Plik≤w"
  311.           fi
  312.           touch /var/lock/subsys/cfsfs
  313.           ;;
  314.    stop)
  315.           echo -n "Zamykanie Kryptograficznego Systemu Plik≤w: "
  316.           umount /securefs
  317.           killproc cfsd
  318.           echo
  319.           rm -f /var/lock/subsys/cfsfs
  320.           ;;
  321.    *)
  322.           echo "U┐ycie: cfsfs {start|stop}"
  323.           exit 1
  324.   esac
  325.  
  326.   exit 0
  327.  
  328.   ====================[koniec pliku cfsfs]======================
  329.  
  330.  
  331.   7.  DODATEK A
  332.  
  333.  
  334.   Jak najwygodniej pos│ugiwaµ siΩ CFS...
  335.  
  336.   Copyright (C) 1997 by Krzysztof G. Baranowski (KGB@rubikon.net.pl)
  337.  
  338.   Poniewa┐ ci▒g│e u┐ywanie komend "cattach","cdetach" i przechodzenie
  339.   pomiΩdzy wieloma odleg│ymi od siebie katalogami mo┐e byµ na d│u┐sz▒
  340.   metΩ mΩcz▒ce i mo┐e zniechΩciµ u┐ytkownika od u┐ywania CFS,
  341.   postanowi│em napisaµ ten dodatek, w kt≤rym przedstawiΩ naprawdΩ bardzo
  342.   proste porady, dziΩki kt≤rym bΩdzie mo┐na zhumanizowaµ pracΩ z CFS.
  343.  
  344.   A zatem zacznijmy od pocz▒tku. Najwygodniej jest utworzyµ w domowym
  345.   katalogu u┐ytkownika ukryty katalog, w kt≤rym bΩdziemy trzymaµ
  346.   wszystkie zakodowane pliki. Wi▒┐e siΩ to jednak z ryzykiem. Bo je┐eli
  347.   kto╢ pozna nasze has│o dostΩpu to bΩdzie m≤g│ swobodnie manipulowaµ
  348.   naszymi plikami.
  349.  
  350.   Z drugiej strony posiadanie wielu katalog≤w mo┐e przyprawiµ
  351.   u┐ytkownika o b≤l g│owy, gdy┐ bΩdzie on musia│ zapamiΩtaµ ogromn▒
  352.   ilo╢µ hase│. A minimalna d│ugo╢µ has│a dostΩpu do ka┐dego katalogu
  353.   wynosi 16 (szesna╢cie) znak≤w. ;-)
  354.  
  355.   Pozosta±my wiΩc przy jednym katalogu. Zatem piszemy:
  356.  
  357.  
  358.   /home/kris$ cmkdir .xfiles
  359.  
  360.  
  361.  
  362.   Zak│adam, ┐e u┐ytkownik ma login: kris, a jego katalog domowy to
  363.   /home/kris i u┐ywa bash'a jako domy╢lnego shella. NastΩpnie CFS
  364.   poprosi nas o has│o, kt≤re musi sk│adaµ siΩ przynajmniej z 16 znak≤w.
  365.   Po weryfikacji has│a nasz tajny katalog ".xfiles" zostanie utworzony:
  366.  
  367.   NastΩpnie dopiszmy dwa aliasy do pliku ".bashrc":
  368.  
  369.  
  370.   alias dekoduj='cattach /home/kris/.xfiles tajne'
  371.   alias koduj='cdetach tajne'
  372.  
  373.  
  374.  
  375.   W tym przypadku katalog, w kt≤rym bΩdziemy mogli przegl▒daµ odkodowane
  376.   pliki posiada nazwΩ "tajne", a jego scie┐ka dostΩpu to:
  377.   /securefs/tajne.
  378.  
  379.   Oczywi╢cie nazwΩ mo┐emy sobie wybraµ dowoln▒. :-)
  380.  
  381.   NastΩpnie w naszym domowym katalogu utw≤rzmy do│▒czenie symboliczne do
  382.   katalogu /securefs/tajne za pomoc▒ komendy:
  383.  
  384.  
  385.   /home/kris$ ln -s /securefs/tajne tajne
  386.  
  387.  
  388.  
  389.   Wyb≤r nazwy do│▒czenia tak┐e zale┐y od u┐ytkownika. I to wszystko.  Od
  390.   tej pory u┐ywanie CFS staje siΩ dziecinnie proste.
  391.  
  392.   Je╢li chcemy dostaµ siΩ do naszego zakodowanego katalogu wpisujemy:
  393.  
  394.  
  395.   /home/kris$ dekoduj
  396.  
  397.   i podajemy has│o. Komenda "cd tajne" od razu przenosi nas tam gdzie
  398.   trzeba, gdzie mo┐emy buszowaµ sobie do woli :-), a "cd .." przenosi
  399.   nas z powrotem do katalogu domowego. Proste i praktyczne. Po
  400.   zako±czeniu pracy wpisujemy:
  401.  
  402.  
  403.   /home/kris$ koduj
  404.  
  405.  
  406.  
  407.   I ju┐ nikt nie odczyta naszych danych, w│▒cznie z nami, chyba ┐e
  408.   u┐yjemy jeszcze raz komendy "dekoduj".
  409.  
  410.   Na koniec ma│a uwaga. Kopiowanie, przenoszenie plik≤w, przechodzenie
  411.   do katalog≤w bΩd▒cych pod kontrol▒ CFS mo┐e byµ trochΩ op≤╝nione.
  412.   Zwi▒zane jest to z enkrypcj▒/dekrypcj▒ dokonywan▒ w czasie
  413.   rzeczywistym. No to bawcie siΩ dobrze.
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.